import { http } from "@/utils/http";

// banner数据类型定义（根据API文档4.2项目列表）
export interface Banner {
  b_bid: string; // 记录ID
  b_name: string; // BANNER标题
  b_path: string; // 跳转链接
  b_picurl: string; // 图片链接
  b_status: string; // 状态：1 上架，0下架
  b_rank: string; // 前端排序，从大到小
  b_ctime: string; // 创建时间
  b_uptime: string; // 更新时间
}

// 添加banner参数类型（根据API文档4.1添加项目）
export interface AddBannerParams {
  b_name: string; // BANNER主题
  b_path: string; // 跳转链接
  b_picbase64: string; // 图片base64
  b_status: string; // 状态：1 上架，0 下架
  b_rank: string; // 前端排序，从大到小
}

// 编辑banner参数类型（根据API文档4.3编辑项目）
export interface EditBannerParams {
  b_bid: string; // 记录id
  b_name: string; // BANNER主题
  b_path: string; // 跳转链接
  b_picbase64: string; // 图片base64
  b_status: string; // 状态：1 上架，0 下架
  b_rank: string; // 前端排序，从大到小
}

// banner详情请求参数类型（根据API文档5.4 BANNER详情）
export interface DetailBannerRequestParams {
  bid: string; // 记录ID
}

// banner详情返回数据类型（根据API文档5.4 BANNER详情）
export interface DetailBannerResponse {
  b_bid: string; // 记录ID
  b_name: string; // BANNER标题
  b_path: string; // 跳转链接
  b_picurl: string; // 图片链接
  b_status: string; // 状态：1 上架，0下架
  b_rank: string; // 前端排序，从大到小
  b_ctime: string; // 创建时间
  b_uptime: string; // 更新时间
}

// banner列表查询参数类型（根据API文档4.2项目列表）
export interface BannerListParams {
  name?: string; // BANNER主题
  status?: string; // 项目状态：1 上架，0 下架
}

// API返回结果类型
export interface ApiResult<T = any> {
  code: number; // 状态码：1 成功
  msg: string; // 描述
  data: T; // 数据
}

/** 添加banner（根据API文档4.1添加项目） */
export const addBanner = (params: AddBannerParams) => {
  return http.request<ApiResult>("post", "/admin/banner.php?act=addbanner", {
    data: params
  });
};

/** 获取banner列表（根据API文档4.2项目列表） */
export const getBannerList = (params: BannerListParams = {}) => {
  return http.request<ApiResult<Banner[]>>(
    "post",
    "/admin/banner.php?act=list",
    {
      data: params
    }
  );
};

/** 编辑banner（根据API文档4.3编辑项目） */
export const editBanner = (params: EditBannerParams) => {
  return http.request<ApiResult>("post", "/admin/banner.php?act=editbanner", {
    data: params
  });
};
/** banner详情（根据API文档5.4 BANNER详情） */
export const detailBanner = (params: DetailBannerRequestParams) => {
  return http.request<ApiResult<DetailBannerResponse>>("post", "/admin/banner.php?act=detail", {
    data: params
  });
};
/** 切换banner状态（根据API文档4.4切换状态） */
export const switchBannerStatus = (id: number) => {
  return http.request<ApiResult>("post", "/admin/banner.php?act=switch", {
    data: { id }
  });
};
